]> dgit.raspbian.org Git - gnome-shell.git/commit
Move calendar handling out-of-process
authorDavid Zeuthen <davidz@redhat.com>
Fri, 25 Feb 2011 22:42:25 +0000 (17:42 -0500)
committerDavid Zeuthen <davidz@redhat.com>
Mon, 28 Feb 2011 21:08:18 +0000 (16:08 -0500)
commite9e30138bd617a410a60b45ac0a5576094ed63d4
treebc9ed45c26bff1e4a26910c6f48cf5249ae3fac0
parentddc135839b5ecc7a8b4ca04b048b9aa4a95a89aa
Move calendar handling out-of-process

Unfortunately the evolution-data-server client-side libraries seem to
block the calling thread. This is a major problem as we must never
ever block the main thread (doing so causes animations to flicker
etc.). In the worst case, this problem causes login to hang (without
falling back to fall-back mode) and in the best case it slows down
login until a network connection is acquired.

Additionally, in order to sanely use these evolution-data-server
libraries, GConf has to be involved and GConf is not thread-safe. So
it's not really feasible just moving the code to a separate
thread. Therefore, move all calendar IO out of process and use a
simple (and private) D-Bus interface for the shell to communicate with
the out-of-process helper.

For simplification, remove existing in-process code since internal
interfaces have been slightly revised. This means that the shell is no
longer using any native code for drawing the calendar dropdown.

https://bugzilla.gnome.org/show_bug.cgi?id=641396

Signed-off-by: David Zeuthen <davidz@redhat.com>
24 files changed:
configure.ac
js/ui/calendar.js
js/ui/dateMenu.js
js/ui/main.js
src/Makefile-calendar-client.am [deleted file]
src/Makefile-calendar-server.am [new file with mode: 0644]
src/Makefile.am
src/calendar-client/README [deleted file]
src/calendar-client/calendar-client.c [deleted file]
src/calendar-client/calendar-client.h [deleted file]
src/calendar-client/calendar-debug.h [deleted file]
src/calendar-client/calendar-sources.c [deleted file]
src/calendar-client/calendar-sources.h [deleted file]
src/calendar-server/README [new file with mode: 0644]
src/calendar-server/calendar-debug.h [new file with mode: 0644]
src/calendar-server/calendar-sources.c [new file with mode: 0644]
src/calendar-server/calendar-sources.h [new file with mode: 0644]
src/calendar-server/gnome-shell-calendar-server.c [new file with mode: 0644]
src/calendar-server/org.gnome.Shell.CalendarServer.service.in [new file with mode: 0644]
src/gnome-shell.in
src/shell-evolution-event-source.c [deleted file]
src/shell-evolution-event-source.h [deleted file]
src/shell-global.c
src/shell-global.h